home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / program / 331 / gemfsc14 / aessrc14 / aesfsel4.s < prev    next >
Text File  |  1989-12-17  |  3KB  |  64 lines

  1.  
  2. ;*========================================================================
  3. ;*
  4. ;* AESFAST Public Domain GEM bindings.
  5. ;*  Maintenance:
  6. ;*   12/17/89 v1.4: This source file is new with this version.
  7. ;*                  Yet another variation on the fsel_exinput function.
  8. ;*                  This version, fsel_14input is the most vanilla access
  9. ;*                  to fsel_exinput.  We check the AES version, and call
  10. ;*                  either fsel_input or fsel_exinput; no emulation modes
  11. ;*                  are available.
  12. ;*========================================================================
  13.  
  14.           .include  "aesfast.sh"
  15.           .include  "gemfast.sh"
  16.           .extern   _gl_apversion
  17.           .extern   aesblock
  18.  
  19. ;*************************************************************************
  20. ;*
  21. ;* Extended fsel manager routine.
  22. ;*
  23. ;*************************************************************************
  24.  
  25. ;-------------------------------------------------------------------------
  26. ; fsel_14input
  27. ;  This function is new with TOS 1.4, but this binding supports it in all
  28. ;  TOS/AES versions by calling the old fsel_input routine if running on
  29. ;  a pre-1.4 system.
  30. ;-------------------------------------------------------------------------
  31.  
  32. _fsel_14input::
  33.  
  34.           .cargs    #8,.pinpath.l,.pinsel.l,.pbutton.l,.plabel.l
  35.           link      a6,#-4
  36.  
  37.           move.l    .plabel(a6),d0           ; Swap the button and prompt
  38.           move.l    .pbutton(a6),.plabel(a6) ; string pointers to make the
  39.           move.l    d0,.pbutton(a6)          ; addrin stuff contiguous.
  40.  
  41.           AControl  90,0,2,2                 ; Assume we'll call fsel_input.
  42.           move.w    _gl_apversion,d1         ; Check the AES version.  If
  43.           cmp.w     #$0104,d1                ; it's $0104, we're running
  44.           beq.s     .newaes                  ; on the RAM-based TOS 1.4
  45.           cmp.w     #$0130,d1                ; Else, if it's less than $0130
  46.           blt       .doit                    ; we have to use fsel_input.
  47. .newaes:
  48.           AControl  91,0,2,3                 ; AES v1.3 & up: fsel_exinput
  49. .doit:
  50.           moveq.l   #-4,d2                   ; is a legal function, do it.
  51.           lea       .pinpath(a6),a0          ; a0 -> addrin
  52.           ACall     RET2HERE                 ; Call AES.
  53.  
  54.           move.l    .plabel(a6),d0           ; Swap the prompt string and
  55.           move.l    .pbutton(a6),.plabel(a6) ; button pointers back to how
  56.           move.l    d0,.pbutton(a6)          ; they were on entry.
  57.  
  58.           moveq.l   #-4,d1                   ; Return values from
  59.           lea       .pbutton(a6),a1          ; intout[] array to caller
  60.           jmp       (a0)                     ; via aes_return routine.
  61.  
  62. ;         end of code
  63.  
  64.